package portal.pub.util.pf;

import java.util.HashMap;
import java.util.Map;

import org.apache.commons.beanutils.BeanUtils;

import com.google.gson.Gson;
import com.google.gson.JsonSyntaxException;
import com.google.gson.reflect.TypeToken;

/**
 * @ClassName: JsonObjectUtil
 * @Description: 工具类
 * @author dcq
 * @date 2020年8月29日 上午9:36:32
 */
@SuppressWarnings("all")
public class JsonObjectUtil {

	private static Gson gson = new Gson();

	/**
	 * json数据格式转化为VO对象
	 * 
	 * @param json
	 * @param obj
	 * @return
	 */
	public static Object parJsonToObject(String json, Object obj)
			throws JsonSyntaxException {
		return gson.fromJson(json, obj.getClass());
	}

	/**
	 * 对象数组转换为json数据格式
	 * 
	 * @param list
	 * @return
	 */
	public static String objectTojson(Object object) {
		String json = gson.toJson(object);
		return json;
	}

	/**
	 * json转Map
	 * 
	 * @param json
	 * @return
	 */
	public static Map jsonToMap(String json) {
		Map map = new HashMap();
		try {
			Gson gson = new Gson();
			map = gson.fromJson(json, new TypeToken<Map>() {
			}.getType());
		} catch (Exception e) {
			e.printStackTrace();
		}
		return map;
	}

	/**
	 * Map对象
	 * 
	 * @param map
	 * @param beanClass
	 * @return
	 * @throws Exception
	 */
	public static Object mapToObject(Map<String, Object> map, Class<?> beanClass)
			throws Exception {
		if (map == null)
			return null;
		Object obj = beanClass.newInstance();
		BeanUtils.populate(obj, map);
		return obj;
	}
}
